package com.cskaoyan.string.basic;

/*
        String类：一个字符串就是一个String对象,一个字符串是由多个字符组成的一串数据(字符序列)

      构造方法
          1.public String()  空字符串 ""

          //利用字节数组，创建字节数组所表示的字符串
          // 1. 字符 -> 数值形式  'a' -> 97
          // 2. 所以可以用多个字节值，表示多个字符——>即字符序列 public
          2.String(byte[] bytes)

          //利用字节数数组的一部分，创建字符序列, 从byte数组的offset开始的length个字节值
          3.public String(byte[] bytes,int offset,int length)

          //利用一个字符数组创建字符数组，代表的字符序列
          4.public String(char[] value)

          // 创建value字符数组中，从第offset位置开始的count个字符，所代表的字符串对象
          5.public String(char[] value,int offset,int count)

          6.public String(String original)   知道即可

 */
public class Demo1Constructor {

    public static void main(String[] args) {
        // public String() 创建一个空字符串
        // 空字符串表示的是一个特殊的字符串(字符串对象)：不包含任何字符
        String s = new String();// ""
        // 判断一个字符串是否是空字符串
        //System.out.println(s.isEmpty());
        // 不要混淆null和空字符串
        String str = null;
        //System.out.println(str.isEmpty());


        //public String(byte[] bytes)
        byte[] bytes = {97, 98, 99, 100, 101};
        s = new String(bytes);
        //System.out.println(s); //abcde

        //public String(byte[] bytes,int offset,int length)
        // "cde"
        s = new String(bytes, 2, 3);
        //System.out.println(s); // cde

        //public String(char[] value)
        char[] chars = {'a', 'b', 'c', 'd', 'e'};
        s = new String(chars);
        //System.out.println(s); //abcde

        // public String(char[] value,int offset,int count)
        s = new String(chars, 2, 3);
        //System.out.println(s); //cde

        //  创建出一个和参数字符串表示的字符序列的一个新的字符串对象
        // public String(String original)
        // 实际上我们的一个字符串字面值常量，也是一个字符串对象
        String originStr = "hello";
        String newString = new String(originStr);

        // 比较originStr 和 newString所指向的是否是同一个字符串对象
        System.out.println(originStr == newString);
        // 比较originStr 和 newString的内容，即它们所代表的字符序列是否相同
        System.out.println(originStr.equals(newString));

        System.out.println(newString);


    }
}
